package com.hongxin.nw.netty.model.analysis.info;

import lombok.extern.slf4j.Slf4j;

/**
 * @remark A.33充电过程中上传数据
 * @author: GuoXiaolin
 * @date 2019/5/25 17:46
 * @Version 1.0
 * @Descibe
 */
@Slf4j
public class Mrena1_17 {
//
//    private String co;   //    充电设备编号	压缩BCD码	8Byte	充电设备编号
//    private String chargeIndex; //    充电接口标识	BIN码	1Byte	充电设备为一桩多充时用来标记接口号，一桩一充时此项为0。多个接口时顺序对每个接口进行编号
//    private String tranNum; //    交易流水号	压缩BCD 码	16Byte	32位交易代码
//    private String buisType; //    业务类型	压缩BCD码	2Byte	0001-充电 0002-放电
//    private String uid; //    用户身份ID	压缩BCD码	8Byte	本地充电时，此字段全部填充为FF
//    private String physicsNum; //    物理卡号	压缩BCD码	8Byte	远程充电时，此字段全部填充为FF
//    private String starttime; //    开始时间	BIN码	7Byte	CP56Time2a格式
//    private String endtime; //    结束时间	BIN码	7Byte	CP56Time2a格式
//    private String jStartVal; //    尖起示值	BIN码	4Byte	精确到小数点后二位
//    private String jendVal; //    尖止示值	BIN码	4Byte	精确到小数点后二位
//    private String fStartVal; //    峰起示值	BIN码	4Byte	精确到小数点后二位
//    private String fendVal; //    峰止示值	BIN码	4Byte	精确到小数点后二位
//    private String pStartVal; //    平起示值	BIN码	4Byte	精确到小数点后二位
//    private String pendVal; //    平止示值	BIN码	4Byte	精确到小数点后二位
//    private String gStartVal; //    谷起示值	BIN码	4Byte	精确到小数点后二位
//    private String gendVal; //    谷止示值	BIN码	4Byte	精确到小数点后二位
//    private String jEQ; //    尖电量	BIN码	4Byte	精确到小数点后二位
//    private String fEQ; //    峰电量	BIN码	4Byte	精确到小数点后二位
//    private String pEQ; //    平电量	BIN码	4Byte	精确到小数点后二位
//    private String gEQ; //    谷电量	BIN码	4Byte	精确到小数点后二位
//    private String zEQ; //    总电量	BIN码	4Byte	精确到小数点后二位
//    private String jEF; //    尖电费	BIN码	4Byte	精确到小数点后两位
//    private String fEF; //    峰电费	BIN码	4Byte	精确到小数点后两位
//    private String pEF; //    平电费	BIN码	4Byte	精确到小数点后两位
//    private String gEF; //    谷电费	BIN码	4Byte	精确到小数点后两位
//    private String zEF; //    当前总电费	BIN码	4Byte	精确到小数点后两位
//    private String szEF; //    服务费总费用	BIN码	4Byte	精确到小数点后两位
//    private String zwEF; //    占位费总费用	BIN码	4Byte	精确到小数点后两位
//    private String metertype; //    计量示数类型	压缩BCD码	2Byte	0002-充电量 0003-放电量
//    private String zStartVal; //    总起示值	BIN码	4Byte	精确到小数点后二位
//    private String zEndVal; //    总止示值	BIN码	4Byte	精确到小数点后二位
//    private String a; //    分时计费标志	压缩BCD码	1Byte	00：分时 ,01：不分时
//    private String caridentify; //    电动汽车唯一标识	字符	17Byte
//    private String chargeTime; //    累计充电时间	BIN码	2Byte	单位：分钟
//    private String surplus_time; //    预计剩余充电时间	 BIN码	2Byte	单位：分钟
//    private String chargeFee; //    充电总费用	BIN码	4Byte	精确到小数点后两位
//
//    private String str;
//    private Mrena1_17 subCo() {
//        this.co = substring(TypeIdentif.BYTE_CO.getByteLength());
//        this.co = FieldAnalysis.analysisBCD(this.co);
//        return this;
//    }
//
//    private Mrena1_17 subChargeIndex() {
//        this.chargeIndex = substring(TypeIdentif.BYTE_CHARGE_INTERFACE_IDENTIFY.getByteLength());
//        this.chargeIndex = FieldAnalysis.analysisBin(this.chargeIndex);
//        return this;
//    }
//
//    private Mrena1_17 subTranNum() {
//        this.tranNum = substring(TypeIdentif.BYTE_TRAN_NUM.getByteLength());
//        this.tranNum = FieldAnalysis.analysisBCD(this.tranNum);
//        return this;
//    }
//
//    private Mrena1_17 subBuisType() {
//        this.buisType = substring(TypeIdentif.BYTE_BUSY_TYPE.getByteLength());
//        this.buisType = FieldAnalysis.analysisBCD(this.buisType);
//        return this;
//    }
//
//    private Mrena1_17 subUid() {
//        this.uid = substring(TypeIdentif.BYTE_USER_ID.getByteLength());
//        this.uid = FieldAnalysis.analysisBCD(this.uid);
//        return this;
//    }
//
//    private Mrena1_17 subPhysicsNum() {
//        this.physicsNum =substring(TypeIdentif.BYTE_PHYSICS_NUM.getByteLength());
//        this.physicsNum = FieldAnalysis.analysisBCD(this.physicsNum);
//        return this;
//    }
//
//    private Mrena1_17 subStarttime() {
//        this.starttime = substring(TypeIdentif.BYTE_START_TIME.getByteLength());
//        this.starttime = FieldAnalysis.hexToTime(this.starttime);
//        return this;
//    }
//
//    private Mrena1_17 subEndtime() {
//        this.endtime = substring(TypeIdentif.BYTE_END_TIME.getByteLength());
//        this.endtime = FieldAnalysis.hexToTime(this.endtime);
//        return this;
//    }
//
//    private Mrena1_17 subjStartVal() {
//        this.jStartVal = substring(TypeIdentif.BYTE_J_START_VAL.getByteLength());
//        this.jStartVal = FieldAnalysis.hexToDecimal(this.jStartVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subJendVal() {
//        this.jendVal = substring(TypeIdentif.BYTE_J_END_VAL.getByteLength());
//        this.jendVal = FieldAnalysis.hexToDecimal(this.jendVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subfStartVal() {
//        this.fStartVal = substring(TypeIdentif.BYTE_F_START_VAL.getByteLength());
//        this.fStartVal = FieldAnalysis.hexToDecimal(this.fStartVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 fendVal() {
//        this.fendVal = substring(TypeIdentif.BYTE_F_END_VAL.getByteLength());
//        this.fendVal = FieldAnalysis.hexToDecimal(this.fendVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subpStartVal() {
//        this.pStartVal = substring(TypeIdentif.BYTE_P_START_VAL.getByteLength());
//        this.pStartVal = FieldAnalysis.hexToDecimal(this.pStartVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subPendVal() {
//        this.pendVal = substring(TypeIdentif.BYTE_P_END_VAL.getByteLength());
//        this.pendVal = FieldAnalysis.hexToDecimal(this.pendVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subgStartVal() {
//        this.gStartVal = substring(TypeIdentif.BYTE_G_START_VAL.getByteLength());
//        this.gStartVal = FieldAnalysis.hexToDecimal(this.gStartVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subGendVal() {
//        this.gendVal = substring(TypeIdentif.BYTE_G_END_VAL.getByteLength());
//        this.gendVal = FieldAnalysis.hexToDecimal(this.gendVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subjEQ() {
//        this.jEQ = substring(TypeIdentif.BYTE_J_EQ.getByteLength());
//        this.jEQ = FieldAnalysis.hexToDecimal(this.jEQ, 2);
//        return this;
//    }
//
//    private Mrena1_17 subfEQ() {
//        this.fEQ = substring(TypeIdentif.BYTE_F_EQ.getByteLength());
//        this.fEQ = FieldAnalysis.hexToDecimal(this.fEQ, 2);
//        return this;
//    }
//
//    private Mrena1_17 subpEQ() {
//        this.pEQ = substring(TypeIdentif.BYTE_P_EQ.getByteLength());
//        this.pEQ = FieldAnalysis.hexToDecimal(this.pEQ, 2);
//        return this;
//    }
//
//    private Mrena1_17 subgEQ() {
//        this.gEQ = substring(TypeIdentif.BYTE_G_EQ.getByteLength());
//        this.gEQ = FieldAnalysis.hexToDecimal(this.gEQ, 2);
//        return this;
//    }
//
//    private Mrena1_17 subzEQ() {
//        this.zEQ = substring(TypeIdentif.BYTE_Z_EQ.getByteLength());
//        this.zEQ = FieldAnalysis.hexToDecimal(this.zEQ, 2);
//        return this;
//    }
//
//    private Mrena1_17 subjEF() {
//        this.jEF = substring(TypeIdentif.BYTE_J_EF.getByteLength());
//        this.jEF = FieldAnalysis.hexToDecimal(this.jEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subfEF() {
//        this.fEF = substring(TypeIdentif.BYTE_F_EF.getByteLength());
//        this.fEF = FieldAnalysis.hexToDecimal(this.fEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subpEF() {
//        this.pEF = substring(TypeIdentif.BYTE_P_EF.getByteLength());
//        this.pEF = FieldAnalysis.hexToDecimal(this.pEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subgEF() {
//        this.gEF = substring(TypeIdentif.BYTE_G_EF.getByteLength());
//        this.gEF = FieldAnalysis.hexToDecimal(this.gEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subzEF() {
//        this.zEF = substring(TypeIdentif.BYTE_Z_EF.getByteLength());
//        this.zEF = FieldAnalysis.hexToDecimal(this.zEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subSzEF() {
//        this.szEF = substring(TypeIdentif.BYTE_S_Z_EF.getByteLength());
//        this.szEF = FieldAnalysis.hexToDecimal(this.szEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subZwEF() {
//        this.zwEF = substring(TypeIdentif.BYTE_Z_W_EF.getByteLength());
//        this.zwEF = FieldAnalysis.hexToDecimal(this.zwEF, 2);
//        return this;
//    }
//
//    private Mrena1_17 subMeterType() {
//        this.metertype = substring(TypeIdentif.BYTE_METER_I_TYPE.getByteLength());
//        this.metertype = FieldAnalysis.analysisBCD(this.metertype);
//        return this;
//    }
//
//    private Mrena1_17 subzStartVal() {
//        this.zStartVal =substring(TypeIdentif.BYTE_Z_START_VAL.getByteLength());
//        this.zStartVal = FieldAnalysis.hexToDecimal(this.zStartVal, 2);
//        return this;
//    }
//
//    private Mrena1_17 subzEndVal() {
//        this.zEndVal = substring(TypeIdentif.BYTE_Z_END_VAL.getByteLength());
//        this.zEndVal = FieldAnalysis.hexToDecimal(this.zEndVal,2);
//        return this;
//    }
//
//    private Mrena1_17 subA() {
//        this.a = substring(TypeIdentif.BYTE_TIME_BILLING_IDENTIFY.getByteLength());
//        this.a = FieldAnalysis.analysisBCD(this.a);
//        return this;
//    }
//
//    private Mrena1_17 subCarIdentify() {
//        this.caridentify = substring(TypeIdentif.BYTE_CAR_IDENTIFY.getByteLength());
////        this.caridentify = FieldAnalysis.caseVin(this.caridentify);
//        return this;
//    }
//
//    private Mrena1_17 subChargeTime() {
//        this.chargeTime = substring(TypeIdentif.BYTE_CUMULATIVE_CHARGE_TIME.getByteLength());
//        this.chargeTime = FieldAnalysis.analysisBin(this.chargeTime);
//        return this;
//    }
//
//    private Mrena1_17 subSurplus_time() {
//        this.surplus_time = substring(TypeIdentif.BYTE_SURPLUS_TIME.getByteLength());
//        this.surplus_time = FieldAnalysis.analysisBin(this.surplus_time);
//        return this;
//    }
//
//    private Mrena1_17 subChargeFee() {
//        this.chargeFee =substring(TypeIdentif.BYTE_CHARGE_FEE.getByteLength());
//        this.chargeFee = FieldAnalysis.hexToDecimal(this.chargeFee, 2);
//        return this;
//    }
//
//
//    //返回截取字符串,并将str赋值为剩余字符串
//    protected String substring(final int length){
//        String res = this.str.substring(TypeIdentif.BYTE_ZERO.getByteLength(),length);
//        if (length < this.str.length()){
//            this.str = this.str.substring(length);
//        }
//        return res;
//    }
//    public Mrena1_17 analysisStr(String str) {
//        log.info("开始解析--充电过程中上传数据");
//        this.str = str;
//        this.subCo()
//                .subChargeIndex()
//                .subTranNum()
//                .subBuisType()
//                .subUid()
//                .subPhysicsNum()
//                .subStarttime()
//                .subEndtime()
//                .subjStartVal()
//                .subJendVal()
//                .subfStartVal()
//                .fendVal()
//                .subpStartVal()
//                .subPendVal()
//                .subgStartVal()
//                .subGendVal()
//                .subjEQ()
//                .subfEQ().subpEQ()
//                .subgEQ().subzEQ()
//                .subjEF().subfEF()
//                .subpEF().subgEF()
//                .subzEF().subSzEF()
//                .subZwEF().subMeterType()
//                .subzStartVal()
//                .subzEndVal().subA()
//                .subCarIdentify().subChargeTime()
//                .subSurplus_time().subChargeFee();
//        log.info("解析结果: " + this.toString());
//        return this;
//    }
//
//
//    @Override
//    public String toString() {
//        return "Mrena1_17{" +
//                "co='" + co + '\'' +
//                ", chargeIndex='" + chargeIndex + '\'' +
//                ", tranNum='" + tranNum + '\'' +
//                ", buisType='" + buisType + '\'' +
//                ", uid='" + uid + '\'' +
//                ", physicsNum='" + physicsNum + '\'' +
//                ", starttime='" + starttime + '\'' +
//                ", endtime='" + endtime + '\'' +
//                ", jStartVal='" + jStartVal + '\'' +
//                ", jendVal='" + jendVal + '\'' +
//                ", fStartVal='" + fStartVal + '\'' +
//                ", fendVal='" + fendVal + '\'' +
//                ", pStartVal='" + pStartVal + '\'' +
//                ", pendVal='" + pendVal + '\'' +
//                ", gStartVal='" + gStartVal + '\'' +
//                ", gendVal='" + gendVal + '\'' +
//                ", jEQ='" + jEQ + '\'' +
//                ", fEQ='" + fEQ + '\'' +
//                ", pEQ='" + pEQ + '\'' +
//                ", gEQ='" + gEQ + '\'' +
//                ", zEQ='" + zEQ + '\'' +
//                ", jEF='" + jEF + '\'' +
//                ", fEF='" + fEF + '\'' +
//                ", pEF='" + pEF + '\'' +
//                ", gEF='" + gEF + '\'' +
//                ", zEF='" + zEF + '\'' +
//                ", szEF='" + szEF + '\'' +
//                ", zwEF='" + zwEF + '\'' +
//                ", MeterType='" + metertype + '\'' +
//                ", zStartVal='" + zStartVal + '\'' +
//                ", zEndVal='" + zEndVal + '\'' +
//                ", a='" + a + '\'' +
//                ", CarIdentify='" + caridentify + '\'' +
//                ", chargeTime='" + chargeTime + '\'' +
//                ", Surplus_time='" + surplus_time + '\'' +
//                ", chargeFee='" + chargeFee + '\'' +
//                '}';
//    }

}
